Blade Barrier
Description Blade Barrier brings into being a 30-ft long and 3-ft wide wall of whirling blades. All those passing through the wall or standing within it each round take 1d6 points of non-magical slashing damage per caster level (maximum of 15d6). The Blade Barrier can also be cast as a 30-ft diameter curtain of blades surrounding the caster. Anything caught in the blades takes 1d6 points of slashing damage per caster level (maximum of 15d6). When the spell is used this way, the duration is halved (6 seconds for every two caster levels). Bug notes In both versions, only one blade barrier can be in effect, this is not mentioned in the description. A better solution, to balance this, would be to allow any amount of wall barriers (like how you can cast any amount of Acid Fogs), so remove the code to delete AOE spells for them, and setting the tag of the AOE. Then removing the effects of the Blade Barrier spell from self for the self version, means the immobilisation and AOE applied to themselves will get removed. No need again for any tag changing for this to work. NW_S0_BladeBarSelf.nss General: eAOE and eHold should be probably linked, so they are dispelled at the same time, else dispel magic could remove one or the other separately. The removal of previous AOE's might work (at least for ones placed down using the "wall" version), but it doesn't remove the immobilisation effect - so that effect stays even if the AOE is removed. Removing all the previous Blade Barrier spell effects from the target (OBJECT_SELF) would be lot safer. Line 59: This spell doesn't use the NWN2 ApplyMetamagicDurationMods() and ApplyMetamagicDurationTypeMods() functions. On Enter: NW_S0_BladeBarSelfA.nss There is no check for a valid caster meaning the caster could be dead while the AOE still does on enter events (until the heartbeat fires). Line 38: SignalEvent() should use OBJECT_SELF (the AOE itself) for the signal event, rather then oCaster. See Acid Fog for reasons. Line 42: This doesn't make use of the much better NWN2 ApplyMetamagicVariableMods() function for metamagic empower/maximise. Heartbeat: NW_S0_BladeBarSelfC.nss Line 59: SignalEvent() should use OBJECT_SELF (the AOE itself) for the signal event, rather then oCaster. See Acid Fog for reasons. Line 66: This doesn't make use of the much better NWN2 ApplyMetamagicVariableMods() function for metamagic empower/maximise. NW_S0_BladeBarWall.nss Line 60: This spell doesn't use the NWN2 ApplyMetamagicDurationMods() and ApplyMetamagicDurationTypeMods() functions. On Enter: NW_S0_BladeBarWallA.nss Line 39: SignalEvent() should use OBJECT_SELF (the AOE itself) for the signal event, rather then oCaster. See Acid Fog for reasons. Line 43: This doesn't make use of the much better NWN2 ApplyMetamagicVariableMods() function for metamagic empower/maximise. On Heartbeat: NW_S0_BladeBarWallC.nss Line 60: SignalEvent() should use OBJECT_SELF (the AOE itself) for the signal event, rather then oCaster. See Acid Fog for reasons. Line 67: This doesn't make use of the much better NWN2 ApplyMetamagicVariableMods() function for metamagic empower/maximise. Gameplay Notes Like some area of effect spells, when a creature first enters this they are likely to be damaged twice in less then a round of time (6 seconds) - once by entering the area of effect, then again when the damage-per-round fires. Against many creatures, this spell can be effective. With good management of allies, the diameter version can slay many creatures attacking the cleric and acts as a very powerful damage shield (if only for a short duration). Generally, those with evasion are much less prone to the spells effects however. As an area of effect spell this proves to be a good area control spell.